#ifndef GET_ENEMY_POSITION_HH
#define GET_ENEMY_POSITION_HH

#include <random>
#include "IGetEnemyPosition.hh"

/**
 * @class GetEnemyPosition
 * @brief A class responsible for determining and returning the enemy's position.
 *
 * Implements the IGetEnemyPosition interface and provides specific functionality
 * to retrieve the enemy's location within the game world.
 */

class GetEnemyPosition : public IGetEnemyPosition{
private:
    int EnemyX = -1;
    int EnemyY = -1;
    bool isAwake = false;
    bool bossSpawned = false;
    bool hasIDCard = false;
    bool hasSpecialItem = false;
    bool statueInHall = false;
    bool muralInCorridor = false;
    bool specimenInLab = false;

public:
    GetEnemyPosition();
    ~GetEnemyPosition() override = default;
    void spawnEnemy() override;
    //void spawnBoss(); 
    //std::pair<int,int> getStudentPosition() const override;
    bool checkEncounter(int playerX, int playerY) override;
    bool isActive() const override;
    void reset() override;
    // bool checkStatueEncounter(int playerX, int playerY);
    // bool checkMuralEncounter(int playerX, int playerY);
    // bool checkSpecimenEncounter(int playerX, int playerY);
    //Enemy* getEnemyAt(int x, int y) const;
};

#endif